// 自定义模块
layui.config({
    base: 'ext/'
}).extend({             // 模块别名
    soulTable: 'soulTable',
		treeTable: 'treeTable'
});

// 模块加载
layui.use(['laydate', 'slider', 'upload', 'table', 'soulTable', 'jquery', 'tree', 'util'], function () {
    //定义layui组件对基础分景处理景像进行合并   得到 tableFilter 对象
    var tableFilter = layui.tableFilter;


    var baseurl = 'http://localhost:63342/';
    var laydate = layui.laydate;
    var upload = layui.upload;
    var tree = layui.tree,// 一个layui的组件，叫作layui.tree；下面的tree是先前的 var tree 来定义
        layer = layui.layer,
        util = layui.util

 /*   //初始化的时候也把选择控控件树加进去
    //鹰眼图设置
    //3、定义一个tableFilter 挂载到 table 上
    var tableFilterIns = tableFilter.render({
        'elem' : '#table_1',//table的选择器
        'mode' : 'local',//过滤模式
        'filters' : [],//过滤项配置
        'done': function(filters){
            //结果回调
        }
    })*/


    var $ = layui.jquery;
    //执行一个laydate实例
    laydate.render({
        elem: '#dateStart' //指定元素
    });
    laydate.render({
        elem: '#dateEnd' //指定元素
    });


    upload.render({ //允许上传的文件后缀
        elem: '#btn-test3',
        url: 'https://httpbin.org/post', //改成您自己的上传接口
        accept: 'file', //普通文件
        acceptMime: '.shp',
        exts: 'shp', //只允许上传压缩文件
        done: function (res) {
            layer.msg('上传成功');
            $("#shpfile").val(res.data);
            console.log(res)
        }
    });

    upload.render({ //允许上传的文件后缀
        elem: '#btn-test4',
        url: 'htps://httpbin.org/post', //改成您自己的上传接口
        accept: 'file', //普通文件
        acceptMime: 'text/plain',
        exts: 'txt', //只允许上传压缩文件
        done: function (res) {
            layer.msg('上传成功');
            $("#txtfile").val(res.data);
            console.log(res)
        }
    });
		function thMove(){
			$('tr').each(function(index,element){

			})
		}
    var table = layui.table,
        soulTable = layui.soulTable;
    var rTotal = 0;
    table;
    mytable = table.render({
        id: 'data-table',// 自己定义，唯一标识
        elem: '#data-table',
        // url: baseurl + 'map/data/layers/demo.json',
				data: [],
        method: 'GET',
        dataType: 'json',
        width: 430,
        height: 600,
        loading: true,
        //行拖放
        rowDrag: true,
        parseData: function (res) { //res 即为原始返回的数据
            console.log('表格请求的数据：', res);
            return {
                "status": res.status,
                "total": res.total,
                "msg": res.msg,
                "data": res.data
            };
        },
        response: {
            statusName: 'status' //规定数据状态的字段名称，默认：code
            ,
            statusCode: 200 //规定成功的状态码，默认：0
            ,
            countName: 'total' //规定数据总数的字段名称，默认：count
            ,
            dataName: 'data' //规定数据列表的字段名称，默认：data
        },
        //toolbar: '#toolbarDemo',

        //查询结果的表格绑定
         cols: [
               [{
                   type: 'checkbox', title: '##'
               }, {
                   field: 'id',
                   width: 60,
                   title: '操作',
                   templet: '#operate',
                   align: 'center',

               }, {
                   field: 'filename',
                   width: 80,
                   title: '文件名',
                   align: 'center'
               },
                   {
                   field: 'satellitenameen',
                   width: 73,
                   title: '卫星',
                   sort: true,
                   align: 'center',
               }, {
                   field: 'sensorName',
                   width: 77,
                   title: '传感器',
                   sort: true,
                   align: 'center',

               }, {
                   field: 'acquisitionTime',
                   width: 94,
                   title: '时间',
                   sort: true,
                   align: 'center',

               }, {
                   field: 'cloudPercent',
                   width: 63,
                   title: '云量',
                   sort: true,
                   align: 'center',

               }
               ]
           ],
        page: true,
        done: function (res) {
            console.log('table', res);
            rTotal = res.total;
            $('.result-text').text('查询结果 ' + res.total + '景，已选择 0 景')
            soulTable.render(this)
						thMove()
        }
    });
    let mytable1 = table.render({
        id: 'data-table1',// 自己定义，唯一标识
        elem: '#data-table1',
				data:[],
        // url: baseurl + 'map/data/layers/demo.json',
        method: 'GET',
        dataType: 'json',
        width: 1000,
        height:400,
        loading: true,
        //行拖放
        rowDrag: true,
        parseData: function (res) { //res 即为原始返回的数据
            return {
                "status": res.status,
                "total": res.total,
                "msg": res.msg,
                "data": res.data
            };
        },
        response: {
            statusName: 'status' //规定数据状态的字段名称，默认：code
            ,
            statusCode: 200 //规定成功的状态码，默认：0
            ,
            countName: 'total' //规定数据总数的字段名称，默认：count
            ,
            dataName: 'data' //规定数据列表的字段名称，默认：data
        },
        //toolbar: '#toolbarDemo',

        //后端联调时候的表格绑定
        cols: [
            [{
                type: 'checkbox', title: '##', fixed: 'left'
            }, {
                field: 'id',
                width: 80,
                title: '序号',
                align: 'center',
                sort: true,
                fixed: 'left'
            }, {
                field: 'satellitenameen',
                width: 100,
                title: '卫星',
                sort: true,
                align: 'center',
                fixed: 'left'
            }, {
                field: 'sensorName',
                width: 100,
                title: '传感器',
                sort: true,
                align: 'center',
                fixed: 'left'
            }, {
                field: 'acquisitionTime',
                width: 200,
                title: '时间',
                sort: true,
                align: 'center',
                fixed: 'left'
            }, {
                field: 'cloudPercent',
                width: 80,
                title: '云量',
                sort: true,
                align: 'center',
                fixed: 'left'
            }
            ]
        ],

        page: true,
        done: function (res) {
            console.log('table', res);
            rTotal = res.total;
            soulTable.render(this)
        }
    });
    // 选中记录
    var data_tr;
    table.on('checkbox(testquery)', function (obj) {
        console.log('mytable', mytable);
        console.log(obj.checked); //当前是否选中状态
        console.log(obj.data); //选中行的相关数据
        console.log(obj.type); //如果触发的是全选，则为：all，如果触发的是单选，则为：one
        console.log('选择的记录：', table.checkStatus('data-table').data); // 获取表格中选中行的数据
        $('.result-text').text('查询结果 ' + rTotal + ' 景，已选择 ' + table.checkStatus('data-table').data.length + ' 景')
        exportData=table.checkStatus('data-table').data;
        for(var i in  exportData){
            lightRequest(exportData[i].imageName);
            console.log("点亮"+exportData[i].imageName);
        }
    });

    table.on('row(data-table)', function (obj) {
        console.log('点击的当前记录', obj);
    });

    //上移
    $(".upformButton").on("click", function () {
        var tbData = table.cache.testReload; //是一个Array
        if (data_tr == null) {
            layer.info("请选择元素");
            return;
        }

        var tr = $(data_tr).parent().parent().parent();

        if ($(tr).prev().html() == null) {
            layer.msg("已经是最顶部了");
            return;
        } else {
            // 未上移前，记录本行和下一行的数据
            var tem = tbData[tr.index()];
            var tem2 = tbData[tr.prev().index()];

            // 将本身插入到目标tr之前
            $(tr).insertBefore($(tr).prev());
            // 上移之后，数据交换
            tbData[tr.index()] = tem;
            tbData[tr.next().index()] = tem2;
        }
    })
    // 下移
    $(".downformButton").on("click", function () {
        var tbData = table.cache.testReload;
        if (data_tr == null) {
            layer.msg("请选择元素");
            return;
        }
        var tr = $(data_tr).parent().parent().parent();
        if ($(tr).next().html() == null) {
            layer.msg("已经是最底部了");
            return;
        } else {
            // 记录本行和下一行的数据
            var tem = tbData[tr.index()];
            var tem2 = tbData[tr.next().index()];
            // 将本身插入到目标tr的后面
            $(tr).insertAfter($(tr).next());
            // 交换数据
            tbData[tr.index()] = tem;
            tbData[tr.prev().index()] = tem2;
        }
    });
    //表单元素确认顺序按钮
    $(".confirmormButton").on("click", function () {
        // 已经调整好顺序了
        var tbData = table.cache.testReload;
        // 用于存放elementKey和elementOrder，主键和排序字段，用于后台更新
        var data = [];
        for (var i = 0; i < tbData.length; i++) {
            var elementKey = tbData[i].elementKey;
            var elementOrder = i + 1;
            data.push({
                "elementKey": elementKey,
                "elementOrder": elementOrder
            });
        }
        $.ajax({
            url: ajaxRoot,
            contentType: "application/json",
            type: "post",
            dataType: 'json',
            data: params,
            success: function (res) {
                layer.msg("确认成功", {
                    icon: 6
                });
                // 重载表格
                table.reload('testReload', {});
            }
        });
    });


    tree.on('checkbox(layer1)',function(data){
        //将选中取消
        $(this).prop("checked", false);
        form.render('checkbox');
        layer.msg("message", {
            time : 3000,
            icon : 10
        });

    });
});

